package com.navinfo.tripanalysis.common.arithmetic.common;

import com.navinfo.tripanalysis.common.arithmetic.enums.EventType;
import lombok.Data;

import java.io.Serializable;

/**
 * 输出的事件统计模型，所有车厂的全量字段
 */
@Data
public class OuterEventData implements Serializable {
    /**
     * 根据0f37算法链生成的事件
     */
    public static final int S_TYPE_0F37 = 1;
    /**
     * 根据0200算法链生成的事件
     */
    public static final int S_TYPE_0200 = 2;
    /**
     * 事件状态：未结束
     */
    public static final int S_STATUS_ONGOING = 1;
    /**
     * 事件状态：已结束
     */
    public static final int S_STATUS_FINISHED = 2;

    /*--start_fields*/
     /**
     * 终端唯一标识
     **/
    private Long uid;

     /**
     * 终端号
     **/
    private Long tid;

    /**
     * 行程所在的日期，格式 YYYYMMDD
     */
    private String day;

     /**
     * 事件开始时间(ms)
     **/
    private Long startGpsTime;

     /**
     * 事件开始纬度
     **/
    private Integer startLatitude;

     /**
     * 事件开始经度
     **/
    private Integer startLongitude;

     /**
     * 事件开始高程
     **/
    private Integer startHeight;

     /**
     * 事件开始GPS车速(综合车速)
     **/
    private Integer startSpeed;

     /**
     * 事件开始GPS方向
     **/
    private Integer startGpsDirection;

     /**
     * 事件结束时间(ms)
     **/
    private Long stopGpsTime;

     /**
     * 事件结束纬度
     **/
    private Integer stopLatitude;

     /**
     * 事件结束经度
     **/
    private Integer stopLongitude;

     /**
     * 事件结束高程
     **/
    private Integer stopHeight;

     /**
     * 事件结束GPS车速(综合车速)
     **/
    private Integer stopSpeed;

     /**
     * 事件结速gps方向
     **/
    private Integer stopGpsDirection;

     /**
     * 事件持续时间(ms)
     **/
    private Long duration;

     /**
     * 事件类型
     **/
    private EventType event;

     /**
     * 扩展数据01
     **/
    private Integer extendField01;

     /**
     * 扩展数据02
     **/
    private Integer extendField02;

     /**
     * 扩展数据03
     **/
    private Integer extendField03;

     /**
     * 扩展数据04
     **/
    private Integer extendField04;

     /**
     * 扩展数据05，常用于累积里程，单位m
     **/
    private Double extendField05;

     /**
     * 扩展数据06，常用于累加油耗，单位ml
     **/
    private Double extendField06;

     /**
     * 扩展数据07
     **/
    private Double extendField07;

     /**
     * 扩展数据08
     **/
    private Double extendField08;

     /**
     * 扩展数据09
     **/
    private Long extendField09;

     /**
     * 扩展数据10
     **/
    private Long extendField10;

    /**
     * 事件来源类型(1:基于0f37数据来生成的事件 2:根据0200数据来统计的行程)
     **/
    private Integer stype;

    /**
     * 事件状态 1:未结束  2:已结束
     **/
    private Integer status = 0;

    /**
     * 强制结束事件标志 1:强制结束 0:否
     **/
    private Integer forceEnd = 0;
    /**
     * 车队编号，按车队设定阀值的算法，输出的事件带teamId
     * teamId为0表示无车队，默认为0
     */
    private Integer teamId=0;

    /*--end_fields*/
}
